// src/stores/user.js

import { defineStore } from 'pinia';
import { ref } from 'vue';
import router from '@/router'; // 引入 router 实例以便进行导航

export const useUserStore = defineStore('user', () => {
  // state
  const userInfo = ref(null);
  const isLoggedIn = ref(false);

  // actions
  function setUserInfo(info) {
    userInfo.value = info;
    isLoggedIn.value = true;
    // 使用 Web API localStorage 进行持久化
    // 注意：localStorage 只能存字符串，所以需要 stringify
    localStorage.setItem('userInfo', JSON.stringify(info));
  }

  function logout() {
    userInfo.value = null;
    isLoggedIn.value = false;
    localStorage.removeItem('userInfo');
    // 使用 vue-router 跳转到登录页
    // 使用 replace 以防止用户通过浏览器“后退”按钮回到之前的页面
    router.replace('/login');
  }

  // 初始化时，尝试从 localStorage 加载用户信息
  const storedInfo = localStorage.getItem('userInfo');
  if (storedInfo) {
    // 注意：从 localStorage 取出的字符串需要 parse 回对象
    setUserInfo(JSON.parse(storedInfo));
  }

  return { userInfo, isLoggedIn, setUserInfo, logout };
  persist: true
});